package com.example.dao;

import com.example.domain.Post;
import org.apache.ibatis.session.RowBounds;

import java.util.List;

public interface PostDao {

    /**
     * 新增帖子
     * @param post
     */
    void addPost(Post post);

    /**
     * 删除帖子
     * @param id
     */
    void deletePost(Integer id);

    /**
     * 查询所有帖子
     * @return
     */
    List<Post> getAllPosts();

    /**
     * 根据帖子内容模糊搜索
     * @param keyword
     * @return
     */
    List<Post> searchPostsByContent(String keyword);

    /**
     * 根据用户id查询
     */
    List<Post> getPostsByUserId(Integer userId);

    /**
     * 分页查询，使用ROWBounds方式。
     */
    List<Post> getPostsByPage(RowBounds rowBounds);


    /**
     * 获取所有帖子及评论
     */
    List<Post> getPostWithComments();

    List<Post> getPostsByUserIdAndCategoryId(Integer userId, Integer categoryId);


    List<Post> getPostsByUserIdAndContent(Integer userId, String keyword);

    Post getPostById(Integer postId);

}
